//简单选择排序

#pragma once

//简单选择排序
template <typename E>
void SelectionSort(E a[], int n)
{
    for(int i = 0; i < n - 1; i++){
        //从 a[i..n-1] 中选出最小的元素 a[k]
        int k = i;
        int j;
        for(j=i+1; j<n; j++)
            if(a[j] < a[k]) 
                k = j;
            //交换 a[i] 和 a[k]
            if(k != i)
                std::swap(a[i], a[k]);
    }
}